import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  // plugins: [uni(), commonjs()],
  // build: {
  //   target: 'es2015'
  // },
  // output.entryFileNames
  // 用途：定义入口chunk（即你的主JavaScript文件，如main.js或index.js等）的输出文件名和路径。
  // 解释：这里[name]会被替换为入口chunk的名称，[hash]是一个根据内容生成的哈希值，确保每次内容变化时文件名也会改变，便于浏览器缓存管理。所有入口chunk将被放置在assets/js/目录下。
  // output.chunkFileNames
  // 用途：定义由代码拆分（code splitting）产生的非入口chunk（例如动态导入的模块）的输出文件名和路径。
  // 解释：与entryFileNames类似，但应用于代码拆分生成的文件。这样设置可以保持与入口文件一致的命名规则，同样带有哈希值，存储位置也是assets/js/。
  // output.assetFileNames
  // 用途：定义静态资源（如CSS、图片等）的输出文件名和路径。
  // 配置函数：这里使用了一个函数来动态决定不同类型的资源输出到哪里。
  // 对于.css文件，输出到assets/css/[name]-[hash].css。
  // 对于常见的图片格式（.png, .jpg, .jpeg, .gif, .svg, .webp），输出到assets/img/[name]-[hash].[ext]，其中[ext]保留原始文件扩展名。
  // 其他未匹配到的静态资源则输出到assets/[name]-[hash].[ext]。
  build: {
    target: 'es2015',
    /* rollupOptions: {
      output: {
        //入口文件输出配置
        entryFileNames: `js/[name]-[hash].js`,
        //代码分割后的文件输出配置
        chunkFileNames: `js/[name]-[hash].js`,
        //静态资源输出配置
        assetFileNames(assetInfo) {
          //css文件单独输出到css文件夹
          if (assetInfo.name.endsWith(".css")) {
            return `css/[name]-[hash].css`;
          }
          //图片文件单独输出到img文件夹
          else if (
            [".png", ".jpg", ".jpeg", ".gif", ".svg", ".webp"].some((ext) =>
              assetInfo.name.endsWith(ext)
            )
          ) {
            return `img/[name]-[hash].[ext]`;
          }
          //其他资源输出到assets文件夹
          else {
            return `[name]-[hash].[ext]`;
          }
        },
      },
    }, */
  },
  base:"./",//打包路径
  resolve: {
    alias:{
      '@': path.resolve(__dirname, './src')//设置别名
    }
  },
  server: {
    port:4000,//启动端口
    open: true,
    proxy: {
      // 选项写法
      // '/api': 'http://192.168.3.205:5000'//代理网址
      '/api': 'https://www.haiqiannengyuan.com'//代理网址
    },
    cors:true
  }
})
